#ifndef __ARTIST_TYPE_H__
#define __ARTIST_TYPE_H__
/*
-------------------------------------------------------------------------
  I don't want to use the real type in the C language ,just because their  
  length rely on the machine which I can't stand.So I use the typedef .
-------------------------------------------------------------------------
*/
/*the types below are used commonly.*/
typedef  char            CHAR;
typedef  short           SHORT;
typedef  int             INT;



typedef  void            VOID;
typedef  unsigned int    UINT;
typedef  int             SINT;
typedef  unsigned short  USHORT;
typedef  short           SSHORT;
typedef  unsigned char   UCHAR;
typedef  char            SCHAR;
/*the types below are used for variable which has the specified length*/
typedef  unsigned int    U4B;
typedef  int             S4B;
typedef  unsigned short  U2B;
typedef  short           S2B;
typedef  unsigned char   U1B;
typedef  char            S1B;
/*the machine support the longest unsigned type*/
typedef  unsigned int    UMAX;
/*the machine support the longest signed type*/  
typedef  int             SMAX;
/*the machine support the shortest unsigned type*/
typedef  unsigned char   UMIN;
/*the machine support the shortest signed type*/
typedef  char            SMIN;
/*Pointors of many objects*/
typedef  char*           PCHAR;
typedef  char**          PPCHAR;
typedef  const char*     PCCHAR;
typedef  void*           PVOID;
typedef  int*            PINT;
typedef  unsigned int*   PUINT;
typedef  unsigned char*  PUCHAR;
typedef  unsigned int*   PU4B;
typedef  int*            PS4B;
typedef  unsigned char*  PU1B;
typedef  char*           PS1B;
typedef  unsigned short* PU2B;


typedef  void*           POINTER4B; 
/*the type for the special use*/

#define EXTERN extern

#define PUBLIC

#define PRIVATE static

#define INLINE  inline

typedef  struct struct_memorymap
         {
            U4B start;
            U4B size;
         }MEMORYMAP;

typedef struct struct_unsignedlonglong
        {
          U4B low;
          U4B high;
        }ULLONG;
typedef struct  struct_unsignedlonglong* PULLONG;
#endif
